# #find package(BLAS REQUIRED)

# add_executable(my_sgemm_v0_global_memory my_sgemm_v0_global_memory.cu)
# target_link_libraries(my_sgemm_v0_global_memory  PRIVATE CUDA::cudart ${cublas} ${BLAS_LIBRARIES})
#  if(CMAKE_BUILD_TYPE STREQUAL "Debug")
#     target_compile_options(my_sgemm_v0_global_memory PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -G>)
#  endif()


#  add_executable(my_sgemm_v1_share_memory my_sgemm_v1_share_memory.cu)
#  target_link_libraries(my_sgemm_v1_share_memory  PRIVATE CUDA::cudart ${cublas} ${BLAS_LIBRARIES})
#   if(CMAKE_BUILD_TYPE STREQUAL "Debug")
#      target_compile_options(my_sgemm_v1_share_memory PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -G>)
#   endif()

#   add_executable(my_sgemm_v2_share_memory my_sgemm_v2_share_memory.cu)
#   target_link_libraries(my_sgemm_v2_share_memory  PRIVATE CUDA::cudart ${cublas} ${BLAS_LIBRARIES})
#    if(CMAKE_BUILD_TYPE STREQUAL "Debug")
#       target_compile_options(my_sgemm_v2_share_memory PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -G>)
#    endif()



#    add_executable(my_sgemm_v3_increasework_in_thread my_sgemm_v3_increasework_in_thread.cu)
#    target_link_libraries(my_sgemm_v3_increasework_in_thread  PRIVATE CUDA::cudart ${cublas} ${BLAS_LIBRARIES})
#     if(CMAKE_BUILD_TYPE STREQUAL "Debug")
#        target_compile_options(my_sgemm_v3_increasework_in_thread PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -G>)
#     endif()


#     add_executable(my_sgemm_v3_my_increasework_in_thread my_sgemm_v3_my_increasework_in_thread.cu)
#    target_link_libraries(my_sgemm_v3_my_increasework_in_thread  PRIVATE CUDA::cudart ${cublas} ${BLAS_LIBRARIES})
#     if(CMAKE_BUILD_TYPE STREQUAL "Debug")
#        target_compile_options(my_sgemm_v3_my_increasework_in_thread PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -G>)
#     endif()


    

#     add_executable(my_sgemm_v4_ds_float4 my_sgemm_v4_ds_float4.cu)
#     target_link_libraries(my_sgemm_v4_ds_float4  PRIVATE CUDA::cudart ${cublas} ${BLAS_LIBRARIES})
#      if(CMAKE_BUILD_TYPE STREQUAL "Debug")
#         target_compile_options(my_sgemm_v4_ds_float4 PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -G>)
#      endif()
     


     add_executable(my_sgemm_v4_using_float4 my_sgemm_v4_using_float4.cu)
     target_link_libraries(my_sgemm_v4_using_float4  PRIVATE CUDA::cudart ${cublas} ${BLAS_LIBRARIES})
      if(CMAKE_BUILD_TYPE STREQUAL "Debug")
         target_compile_options(my_sgemm_v4_using_float4 PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -G>)
      endif()


      add_executable(my_sgemm_v4_my_using_float4 my_sgemm_v4_my_using_float4.cu)
      target_link_libraries(my_sgemm_v4_my_using_float4  PRIVATE CUDA::cudart ${cublas} ${BLAS_LIBRARIES})
       if(CMAKE_BUILD_TYPE STREQUAL "Debug")
          target_compile_options(my_sgemm_v4_my_using_float4 PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -G>)
       endif()


       add_executable(my_sgemm_v5_my_register_outer_product my_sgemm_v5_my_register_outer_product.cu)
       target_link_libraries(my_sgemm_v5_my_register_outer_product  PRIVATE CUDA::cudart ${cublas} ${BLAS_LIBRARIES})
        if(CMAKE_BUILD_TYPE STREQUAL "Debug")
           target_compile_options(my_sgemm_v5_my_register_outer_product PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -G>)
        endif()

        add_executable(my_sgemm_v6_register_outer_product_float4 my_sgemm_v6_register_outer_product_float4.cu)
        target_link_libraries(my_sgemm_v6_register_outer_product_float4 PRIVATE CUDA::cudart ${cublas} ${BLAS_LIBRARIES})
         if(CMAKE_BUILD_TYPE STREQUAL "Debug")
            target_compile_options(my_sgemm_v6_register_outer_product_float4 PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -G>)
         endif()

         add_executable(my_sgemm_v6_my_register_outer_product_floa4 my_sgemm_v6_my_register_outer_product_floa4.cu)
         target_link_libraries(my_sgemm_v6_my_register_outer_product_floa4 PRIVATE CUDA::cudart ${cublas} ${BLAS_LIBRARIES})
          if(CMAKE_BUILD_TYPE STREQUAL "Debug")
             target_compile_options(my_sgemm_v6_my_register_outer_product_floa4 PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: -G>)
          endif()


         

         
# 设置默认目标为 my_sgemm_v1_share_memory
#set(DEFAULT_TARGET my_sgemm_v1_share_memory)
# add executable(my reduce v1 shared memory my reduce_vi shared memory.cu)
# tarpet link libraries(my reduce_v1 shared memory PRIVATE CUDA::cudart ${CUDA CUblaS LIBRARY} ${BLAS LIBRARIES})if(CMAKE BUILD TYPE STREQUAL "Debug")
# target_compile_ options(my_reduce_v1_shared memOry PRIVATE $<$<COMPILE _LANGUAGE :CUDA>: -G>)endif